From: Carlos Garnacho Date: Thu, 6 Feb 2020 09:56:44 +0000 (+0100) Subject: magnifier: Ignore repeated a11y events X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~777^2^2~158 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=c8d02be14a0b9fa41b7bb78e1b5fa281375fcb55;p=gnome-shell.git magnifier: Ignore repeated a11y events We may get several a11y events setting the caret on the same coordinates it previously was. Make focus tracking ignore those, as we're jumping to the same coordinates again during eg. mouse operation. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/984 --- diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index 497819640..7b43e8dd2 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -799,9 +799,13 @@ var ZoomRegion = class ZoomRegion { return; } - [this._xFocus, this._yFocus] = [extents.x + (extents.width / 2), - extents.y + (extents.height / 2)]; - this._centerFromFocusPosition(); + let [xFocus, yFocus] = [extents.x + (extents.width / 2), + extents.y + (extents.height / 2)]; + + if (this._xFocus !== xFocus || this._yFocus !== yFocus) { + [this._xFocus, this._yFocus] = [xFocus, yFocus]; + this._centerFromFocusPosition(); + } } _updateCaret(caller, event) { @@ -816,8 +820,12 @@ var ZoomRegion = class ZoomRegion { return; } - [this._xCaret, this._yCaret] = [extents.x, extents.y]; - this._centerFromCaretPosition(); + let [xCaret, yCaret] = [extents.x, extents.y]; + + if (this._xCaret !== xCaret || this._yCaret !== yCaret) { + [this._xCaret, this._yCaret] = [xCaret, yCaret]; + this._centerFromCaretPosition(); + } } /**